一、环境需求&安装LVS软件
环境准备:三台虚拟机
此环境是针对内部服务的LVS架构,如数据库,缓存,共享存储等业务。
虚拟机角色 | IP地址 | 备注 |
---|---|---|
LVS负载均衡器 | 192.168.41.181 | VIP地址:192.168.40.17 |
http服务器 | RS1192.168.41.31 | |
http服务器 | RS2192.168.41.33 |
安装LVS软件
在安装LVS软件之前,先确定两条HTTPserver是能够正常访问的。
下载软件
|
|
这里使用的2.4版本,并且注意内核是2.6版本的,如果版本是6.X版本的话,那么可以使用2.6版本
- 编译安装
需要创建一个软连接:ln -s /usr/src/kernels/2.6.18-238.el5-i686 /usr/src/linux
此处粗体根据自己的系统来进行定义,可以使用tab键来补齐。
|
|
因为此时系统还没有把ipvs模块加载进系统,需要我们执行ipvsadm命令才会加载进去,或者modprobe ip_vs。
|
|
二、手动配置LVS负载均衡器
正常工作中是不会手动配置的,也不会使用脚本配置的。最终我们是通过配置文件生效的,结合keepalived来进行部署的。
- 负载均衡器上配置VIP地址
|
|
- ipvsadm添加LVS服务
参数 | 参数说明 | ||
---|---|---|---|
-A | -A –add-service 添加一个带选项的虚拟服务。Add a virtual service. A serviceaddress is uniquely defined by a triplet: IP address, portnumber, and protocol. Alternatively a virtualservice may be defined by a firewall-mark. | ||
-t | 指定虚拟服务器的IP地址和端口 | ||
-s | -s,–scheduler scheduling-method 调度算法 | ||
-p | 会话保持按秒计算 | ||
-a | -a在对应的VIP下添加RS节点 | ||
-g | 指定此LVS的工作模式为-g -g为DR模式 | ||
-l | 指定LVS的工作模式为-l -l为tunnel模式 | ||
-m | 指定LVS的工作模式为NAT模式 | ||
-w | 指定RS节点的权重 | ||
-D | 删除虚拟服务.格式:ipvsadm-D -t | u | f service-address. Delete a virtual service, alongwith any associated real servers. |
-C | -C, –clear Clear the virtual server table清空lvs原有的配置。 | ||
-set | 设置tcp tcpfn udp 的连接超时时间(一般来说高并发的时候小一点点。 |
|
|
|
|
LB上删除虚拟服务
|
|
三、RS节点服务器手动配置
- 添加lo端口的VIP&路由
|
|
(由于RS的VIP不是用来通讯,并且这里一定要设置24位掩码)
|
|
- ARP抑制
|
|
四、测试LVS是否生效
在LB上面输入命令ipvsadm -L -n就能够查看LB上面的会话分配。在前面加上watch可以动态的查看ipvsadm的会话分配。watch ipvsadm -L -n.
- 测试RS节点是否正常访问
- 测试从LB能否正常访问RS
- 测试客户端能否正常访问VIP
在测试的时候可以先把防火墙关闭掉,一般按照这样配置就能够实现LVS的负载均衡了。
至此我们的LVS DR模式负载均衡已经配置完成了。至于不同的调度算法啊-s 不同的工作模式-g(DR) -l(TUNNEL) -m(NAT)服务器端基本上没有什么差别。只是在客户端上有一定的差别。
NAT模式:
客户端同样需要配置VIP,进行ARP抑制,并且要服务器端开启内核转发功能,配置LB的DIP(内网IP地址)作为默认网关。
开启内核转发功能:
|
|
Tunnel模式:
客户端需要先开启Tunnel协议支持。
|
|
五、部署成功后的另一些问题
- 当我们的RS节点出现问题,LB如何知道。如果不知道是会把会话连接接续转发到RS上面。
- 如果LB出现故障,那么整个网络就出现故障。
针对上面的1问题,我们就需要一种RS节点健康检查机制。定时的去检测RS是否正常,如果出现不正常那么就把这个RS从VIP服务里面删除掉。如果恢复正常了,就再把RS添加进来。针对2问题,我们可以另外再架设一台LB服务器,作为备LB服务器。那么当主LB出现故障,备LB服务器就会启动接管主LB服务器的工作,接管它的资源(IP地址,在网络中的角色身份等)
而上面提到的这些我们就需要结合keepalived来完成。所以后续我们开始讲keepalived+lvs结合适用。完成RS节点健康检查和LVS的高可用性功能。